import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Test1 {
    public static void main(String[] args) {
        StringBuilder strbu = new StringBuilder() ;
        Set<String> set = new HashSet<>() ;


    }
}
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
 class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        Set<String> set = new HashSet<>() ;
        while(scan.hasNext()){
            String str = scan.nextLine() ;
            StringBuilder strbu = new StringBuilder() ;
            for(int i = 0 ; i < str.length() ; i ++){
                char tmp = str.charAt(i) ;
                if(tmp != ' '){
                    strbu.append(tmp);
                }else{
                    set.add(strbu.toString()) ;
                    strbu = new StringBuilder() ;
                }
            }
            if(strbu.length() != 0){
                set.add(strbu.toString()) ;
            }
        }
        System.out.println(set.size());
    }
}

// 注意类名必须为 Main, 不要有任何 package xxx 信息
// class Main {
//    public static void main(String[] args) {
//        Scanner scan = new Scanner(System.in);
//        int n = scan.nextInt() ;
//        int a = 0 ;
//        int b = 1 ;
//        int sum = 0 ;
//        int buc = Math.abs(n - sum);
//        for(  ; sum <= n ; ){
//            if(Math.abs(n-sum) < buc){
//                buc = Math.abs(n-sum);
//            }
//            sum = a + b;
//            a = b ;
//            b = sum ;
//        }
//        if(buc <Math.abs(n-sum) ){
//            System.out.println(buc);
//        }else{
//            System.out.println(Math.abs(n-sum) );
//        }
//
//    }
//}